<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
    <title>mixins 混入</title>
    <script src="../assets/js/vue.js"></script>
</head>
<body>
    <h1>mixins 混入</h1>
    <hr/>
    <div id="app">
        {{num}}
        <p><button @click="add">add</button></p>
    </div>

    <script>

        var addConsole = {
            //这里的updated是vue生命周期的方法
            //如果mixins和updated同时存在时,会优先执行mixins的方法
            updated: function(){
                console.log("数据发生变化,变成了<"+this.num+">")
            }
        };

        /**
            使用Vue.mixin来定义全局的混入
            执行时会优先执行全局的混入,然后执行实例的混入.最后执行生命周期钩子函数
        */
        Vue.mixin({
            updated: function(){
                console.log("我是全局的混入");
            }
        })

        var app = new Vue({
            el: '#app',
            data: {
                num: 1
            },
            methods:{
                add: function(){
                    this.num++;
                }
            },
            updated: function(){
                console.log("生命周期的updated方法<"+this.num+">")
            },
            //注册混入到构造器中.这里使用数组,可以注册多个混入
            mixins:[addConsole]
        });
    </script>

</body>
</html>